<?php
// +-----------------------------------------------------------------------+
// |                                                                       |
// | WebFormsQA     (Question - Answer)                                    |
// | Copyright  (C) 2010                                                   |
// | Official site  www.scale-tech.ru                                      |
// | email          scale-tech@mail.ru                                     |
// | autor          Alexander Demachev                                     |
// |                                                                       |
// | This program is free software; you can redistribute it and/or modify  |
// | it under the terms of the GNU General Public License as published by  |
// | the Free Software Foundation; version 2 of the License.               |
// |                                                                       |
// | This program is distributed in the hope that it will be useful,       |
// | but WITHOUT ANY WARRANTY; without even the implied warranty of        |
// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         |
// | GNU General Public License for more details.                          |
// +-----------------------------------------------------------------------+

/**
 * @file main_page.test.php
 * @brief файл содержит код для тестирования класса MainPage \n
 * @include main_page.test.php
 */

/*! @addtogroup TestWebFormsQA Tестирование проекта WebFormsQA
 *  Группа включает классы для тестирования исходного кода
 *  @{
 */

/**
 * @class MainPageTest
 * @brief Класс для проверки методов главной страницы MainPage \n
 *        Исходный код [ @ref main_page.test.php ] 
 */
class MainPageTest extends PHPUnit_TestCase {

    /**
     * Метод проверяет авторизацию пользователя 
     */
    function testUpdate()
    {
        // очищаем базу
        DataAddTest::DeleteTestDataInDatabase();
        // формируем категории заново
        DataAddTest::AddTestDataInDatabase();


        require_once('smarty/smarty.class.php');
        $smarty     = new Smarty;
        $attr 		= array(); 
        // путь к текущему активному шаблону
        $path_template  = "./templates/first/";
        $main_page= new MainPage($smarty, $attr, $path_template, "");

        $main_page->update();
        $state = $smarty->get_template_vars('state');
	    
	    // проверяю выполнение страницы по умолчанию ViewQuestion
	    // ничего не выбрано, отображение корневых категорий и 
	    // не найдено ни одного вопроса
	    $this->assertEquals(4, $state);
        $current_tabs = $smarty->get_template_vars('current_tabs');
        $this->assertEquals(ID_PAGE_VIEW_QUESTION, $current_tabs);
        
        $code_page = $smarty->get_template_vars('code_page');
        $this->assertEquals("index.php?view_question_page", $code_page);
        

        
        // проверяю через страницу авторизации
        $_POST['entrance_page']  = '';
        $main_page->update();
        $state = $smarty->get_template_vars('state');
		// начальное состояние
	    $this->assertEquals(0, $state);
        
        
        
        $_POST['first']  = 'testUser1';
        $_POST['second'] = 'testUser';
        $main_page->update();
        $state = $smarty->get_template_vars('state');
		// пароль не правильный
	    $this->assertEquals(3, $state);
        

	    $_POST['second'] = 'testUser1';
	    //   пользователь идентифицирован стр. entrance_page
        $main_page->update();
        $state = $smarty->get_template_vars('state');
        $this->assertEquals(1, $state);
        

        unset($_POST['entrance_page']);
        unset($_POST['first']);
        unset($_POST['second']);
        AuthCommon::unsetAuthSessionInfo();
        

    } // testUpdate


} // MainPageTest

/*! @} */

?>
